package com.tbit.uqbike.service.business;

import com.tbit.uqbike.object.pojo.Adaccount;
import com.tbit.uqbike.object.pojo.AdvertConfig;
import com.tbit.uqbike.object.value.LoginInfo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 * @author chenmengran
 * @Description: 运营区域广告
 * @date 2020\1\7 000714:13
 */
public interface AdaccountService {

    /**
     * 分页查询
     *
     * @param accountId
     * @param type
     * @param sortName
     * @param rowCount
     * @param pageNO
     * @return
     */
    List<Adaccount> queryPage(Integer accountId, Integer type, String sortName, Integer rowCount, Integer pageNO);

    /**
     * 查询总数
     *
     * @param accountId
     * @param type
     * @return
     */
    Integer getTotal(Integer accountId, Integer type);

    /**
     * 添加顶部广告
     */
    void addTopAdvert(Integer accountId, Integer type, String title, String openURL,
                      String remark, Long startTime, Long endTime);

    /**
     * 添加图片广告
     *
     * @param accountId
     * @param type
     * @param title
     * @param openURL
     * @param remark
     * @param startTime
     * @param endTime
     */
    void addAdvert(Integer accountId, MultipartFile[] file, Integer type, String title, String openURL,
                   String remark, Long startTime, Long endTime);

    /**
     * 删除广告
     *
     * @param loginInfo
     * @param adId
     */
    void delAdvert(LoginInfo loginInfo, Integer adId);

    void update(Map<String, Object> params, Integer adId, Integer sort, String openURL);


    void editAdvertConfig(AdvertConfig advertConfig);

    List<AdvertConfig> getAdvertConfig(AdvertConfig advertConfig);

    Integer addAdvertNo(AdvertConfig advertConfig);

    /**
     * 更新广告
     *
     * @param accountId
     * @param file
     * @param type
     * @param title
     * @param openURL
     * @param remark
     * @param startTime
     * @param endTime
     * @param url
     */
    void updateAdvert(Integer accountId, MultipartFile[] file, Integer type, String title, String openURL, String remark, Long startTime, Long endTime, String url, LoginInfo loginInfo, Integer adId);


    /**
     * 更新区域广告id
     */
    void updateAdAccountIdFlowNo();

    /**
     * 根据类型获得广告
     * @param type 广告类型
     * @return 广告列表
     */
    List<Adaccount> getListByType(Integer type);
}
